package com.sleep.psy.external_server.business.psy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sleep.psy.external_server.business.evaluation.entity.dto.Res;
import com.sleep.psy.external_server.business.psy.entity.PsyBaseVideo;
import com.sleep.psy.external_server.result.Result;

import java.util.List;

/**
 * <p>
 * 基础视频列表 服务类
 * </p>
 *
 * @author wenliguo
 * @since 2025-08-12
 */
public interface PsyBaseVideoService extends IService<PsyBaseVideo> {

    /**
     * 通过业务分类获取有效的基础视频
     * @author wenliguo
     * @date 2025/6/9 11:13
     * @param bsiType 业务分类
     * @return java.util.List<com.sleep.psy.main_server.business2.evaluation.entity.PsyBaseVideo>
     */
    List<PsyBaseVideo> selectBaseVideoByBsiType(Integer bsiType);

    /**
     * 通过业务分类和序号获取每日一课
     * @author wenliguo
     * @date 2025/6/11 14:06
     * @param bsiType 业务id
     * @param audioSort 排序
     * @return com.sleep.psy.main_server.business2.evaluation.entity.PsyBaseVideo
     */
    PsyBaseVideo selectVideByBsiTypeAndSort(Integer bsiType, Integer audioSort);

    /**
     * 通过id获取有效的基础视频
     * @author wenliguo
     * @date 2025/8/13 10:57
     * @param id id
     * @return com.sleep.psy.external_server.psy.entity.PsyBaseVideo
    */
    PsyBaseVideo selectById(Integer id);

    /**
     * 通过多个id查询
     * @author wenliguo
     * @date 2025/8/13 15:56
     * @param ids ids
     * @return java.util.List<com.sleep.psy.external_server.psy.entity.PsyBaseVideo>
    */
    List<PsyBaseVideo> selectByIds(List<String> ids);


    /**
     * 获取多个音频
     * @author wenliguo
     * @date 2025/8/17 13:32
     * @param ids ids
     * @return com.sleep.psy.external_server.result.Result
    */
    Result selectVideoByIds(String ids);


    /**
     * 获取通用的训练
     * @author wenliguo
     * @date 2025/8/20 11:34
     * @return com.sleep.psy.external_server.result.Result
    */
    Result selectGenernal();

    /**
     * 训练课程列表
     * @author wenliguo
     * @date 2025/8/21 16:27
     * @return com.sleep.psy.external_server.result.Result
    */
    Result selectTraingList();

    /**
     * 冥想专项
     * @author wenliguo
     * @date 2025/8/21 16:28
     * @return com.sleep.psy.external_server.result.Result
    */
    Result selectMeditationList();

    /**
     * 睡眠训练
     * @author wenliguo
     * @date 2025/8/21 16:28
     * @return com.sleep.psy.external_server.result.Result
     */
    Result selectSleepList();

    /**
     * 放松减压
     * @author wenliguo
     * @date 2025/8/21 16:28
     * @return com.sleep.psy.external_server.result.Result
     */
    Result selectRelaxList();
}
